﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Foothill.Model;

namespace Foothill.Service.UserAccount
{
    public interface IAccountRegistrationManager
    {
        ValidateAccountRegistrationResult ValidateAccountRegistrationInfo(AccountRegistrationInfo info, ICollection<Tuple<UserAccountField, string>> invalidFieldsAndError);

        bool CreateNewAccount(AccountRegistrationInfo info);

        AccountActivationResult VerifyActivationCode(object authCode, out int accountId, out string message);

        bool ActivateNewAccount(int accountId);

        bool SendAnotherActivation(AccountRegistrationInfo info);
    }
}
